home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / utils / shell / ncd-0.000 / ncd-0 / ncd-0.9.8 / ncd.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-06  |  5.3 KB  |  171 lines

  1. #include <stdio.h> 
  2. #include <dirent.h>  
  3.  
  4. /*************************************************************************/
  5.  
  6. typedef struct _DirNode {
  7.     char *name;        /* dir name */
  8.     char *lname;    /* NULL, or link name */
  9.     int x, y;    /* x,y position origin = (0,0) */
  10.     struct _DirNode *left, *right, *up, *down;    /* other node ptrs */
  11. } DirNode;
  12.  
  13. /*************************************************************************/
  14.  
  15. #ifndef GLOBAL_DEF
  16.  
  17. extern int _rebuild;
  18. extern int _scope;
  19. extern int _rebauto;
  20. extern int _verbose;
  21. extern int _justdump;
  22. extern int _lineart;
  23. extern int _showlink;
  24.  
  25. /*************************************************************************/
  26. /* other global variables */
  27.  
  28. extern char _home[PATH_MAX];
  29. extern char _xhome[PATH_MAX];
  30. extern char _cwd[PATH_MAX];
  31. extern char _root[PATH_MAX];
  32. extern char _xroot[PATH_MAX];
  33. extern char _finalDir[PATH_MAX];
  34. extern char _argumentDir[PATH_MAX];
  35.  
  36. extern char _homeFile[PATH_MAX];
  37. extern char _fullFile[PATH_MAX];
  38. extern char _selDirFile[PATH_MAX];
  39.  
  40. extern DirNode *_rootNode;
  41. extern DirNode *_lastNode;
  42. extern int _nLinks;  
  43.  
  44. extern char _searchPath[PATH_MAX];
  45. extern int _searchPLen;
  46. extern int _searchPX;
  47.  
  48. extern int _x0;
  49. extern int _y0;
  50. extern DirNode *_curNode;
  51.  
  52. extern int _cols;
  53. extern int _lines;
  54. extern int _use_color;
  55. extern int _cursesOn;
  56.  
  57. int _refCurrent;
  58. int _refRest;
  59. int _refCurDir;
  60. int _refSearch;
  61.  
  62. #endif
  63.  
  64. /*************************************************************************/
  65. /* special codes to format directory tree. Arbitrary way selected */
  66.  
  67. #define __ACS_HL 1          /* line art codes */
  68. #define __ACS_VL 2
  69. #define __ACS_LT 3
  70. #define __ACS_LLC 4
  71. #define __ACS_TT 5
  72.  
  73. #define __SEL_ON 6           /* selection on/off codes */
  74. #define __SEL_OFF 7
  75.  
  76.  
  77. /* other constants */
  78. #define MAX_LINKS   256   /* if more recursive links, error */
  79. #define SEARCHWIN_LEN 30   /* max visible length for search window */
  80. #define MIN_LINES 6        /* min. LINES in screen  */
  81. #define MIN_COLS 30        /* min. COLS in screen */
  82. #define HLP_LINES 14    /* lines used for help screen */
  83. #define HLP_COLS 60     /* columns used for help screen */
  84.  
  85. /*************************************************************************/
  86. /* prototipes for dirs.c */
  87.  
  88. char *addSlash(char *dirName);
  89. char *stripSlash(char *dirName);
  90. char *compactAbsDir(char *absDirName);
  91. char *trueDir(char *dir);
  92. char *getDirName(char *dirPath);
  93.  
  94. /*************************************************************************/
  95. /* prototipes for nodes.c */
  96.  
  97. DirNode *readDirsInNodes(char *baseName, DirNode * baseNode);
  98. DirNode *readNodesFromFile(char *fname);
  99. void writeSubNodeTreeToFile(FILE * f, DirNode * node);
  100. void writeNodesToFile(char *fname, DirNode * baseNode);
  101. void delNodesFromMemory(DirNode * baseNode);
  102. char *getNodeName(DirNode * node, int showlink);
  103. char *getNodeFullPath(DirNode * node, int withlink, int relative, DirNode * relNode, int use_xroot);
  104. int numerateNodeTree(DirNode * rootNode, int x, int y);
  105. DirNode *getNodeFollowLink(DirNode * rootNode, DirNode * node);
  106. char *getTreeLine(DirNode * node, int lineart, int marksel);
  107.  
  108. /*************************************************************************/
  109. /* prototipes for nodeops.c */
  110.  
  111. DirNode *searchNodeForDir(DirNode * baseNode, char *baseDir, char *dir);
  112. DirNode *getLastDescendant(DirNode * node);
  113. DirNode *getLastNodeInSameLevel(DirNode * node);
  114. DirNode *getFirstNodeInSameLevel(DirNode * node);
  115. DirNode *getAnyNodeInLevel(DirNode * node, int level);
  116. DirNode *getLastNodeInLevel(DirNode * node, int level);
  117. DirNode *getFirstNodeInLevel(DirNode * node, int level);
  118. DirNode *getNodeCursUp(DirNode * curNode);
  119. DirNode *getNodeLnUp(DirNode * curNode);
  120. DirNode *getNodeLnDn(DirNode * curNode);
  121. DirNode *getNodePrev(DirNode * curNode);
  122. DirNode *getNodeCursDown(DirNode * curNode);
  123. DirNode *getNodeCursLeft(DirNode * curNode);
  124. DirNode *getNodeCursRight(DirNode * curNode);
  125. DirNode *locatePathOrSo( char * path, char * *rest );
  126. DirNode *nextNodeCiclic(DirNode * rootNode, DirNode * curNode);
  127. int validSearchDir( char * fullDir, char * fullDirLink, char * searchDir );
  128. DirNode *findDirInCicle(DirNode * rootNode, DirNode * curNode, char *dir);
  129. DirNode *findDirSegInCicle(DirNode * rootNode, DirNode * curNode, char *dir);
  130. DirNode *directSelectANode( void );
  131. void showTree(DirNode * rootNode);
  132.  
  133. /*************************************************************************/
  134. /* prototipes for curs.c */
  135.  
  136. void ioInitialize(void);
  137. void ioTerminate(void);
  138. void prepareColorModes(void);
  139. int getColorMode(int c);
  140. int getKey(int delay);
  141. int kbHit(void);
  142. void showHelp();
  143. DirNode * selectANode( int * quit );
  144.  
  145. /*************************************************************************/
  146. /* prototipes for disp.c */
  147.  
  148. void paintLayout(void);
  149. char *truncString(char *s, int maxlen);
  150. void updateLine(int i);
  151. void dataRefresh(int newx, int newy, DirNode * newNode);
  152. void editSearch(int ch);
  153. void showHelpScreen();
  154. void showHelpNoSpace();
  155. void cursRebuildMsg();
  156.  
  157. /************************************************************************ */
  158. /* prototipes for ncd.c */
  159.  
  160. void cleanUp( void );
  161. int parseOpts(int argc, char *argv[]);
  162. int parseArguments(int argc, char *argv[]);
  163. DirNode *rebuildTree(void);
  164. DirNode *readTreeFiles(void);
  165. int getFinalPath( DirNode * node );
  166. void initializeFinalDir( void );
  167. void changeToFinalDir( void );
  168. void getGlobals( int init_cwd );
  169.  
  170. /*************************************************************************/
  171.